/*
 *  svk.h
 *  EPPI-0.0
 *
 *  Created by Sergio Conde on 1/04/2011.
 *
 */
 
#ifndef _svk_h_
#define _svk_h_

#include <iostream>
#include "hyperelasticinvariants.h"

using namespace std;

class Svk : public HyperelasticInvariants
{
public:
/*	Data members from the base class Material
	string name;
	double density;
	vector< vector<double> > Ct;	// Linearized constitutive tensor
*/
	
public:
	Svk();
	Svk(ifstream &, const string &, const string &);
	~Svk(){}
	
	// Virtual functions from Hyperelastic base: Material's definition
	void strainEnergy();		// Strain energy
	void DstrainEnergy();		// First derivatives of Strain energy respect to the invariants
	void DDstrainEnergy();		// Second derivatives of Strain energy respect to the invariants
    void DDDstrainEnergy();		// Third derivatives of Strain energy respect to the invariants
	
	// Virtual functions from Material base: Getting material properties 
//	double getE();
//	double getNu();
//	double getLambda();
//	double getMu();
//	double getDensity();
	
	/** Local functions */

};

#endif	
	
